﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace BreukADO
{
    public partial class BeheerOpdrachten : Form
    {
        private int currentOpdrachtID;

        public BeheerOpdrachten()
        {
            InitializeComponent();
        }

        private void BeheerOpdrachten_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'breukADODataSet1.OpdrachtDetail' table. You can move, or remove it, as needed.
            this.opdrachtDetailTableAdapter.Fill(this.breukADODataSet1.OpdrachtDetail);
            // TODO: This line of code loads data into the 'breukADODataSet1.Opdracht' table. You can move, or remove it, as needed.
            this.opdrachtTableAdapter.Fill(this.breukADODataSet1.Opdracht);
            
            if (dgvOpdrachten.SelectedRows[0].Cells[4].Value.ToString().Equals("True"))
            {
                btnVerwijderOpdracht.Enabled = false;
            }
            else
            {
                btnVerwijderOpdracht.Enabled = true;
            }
        }

        private void dgvOpdrachten_SelectionChanged(object sender, EventArgs e)
        {
            
            if (dgvOpdrachten.SelectedRows.Count > 0)
            {
                currentOpdrachtID = Int32.Parse(dgvOpdrachten.SelectedRows[0].Cells[0].Value.ToString());
                String status = dgvOpdrachten.SelectedRows[0].Cells[3].Value.ToString();
                if (dgvOpdrachten.SelectedRows[0].Cells[4].Value.ToString().Equals("True"))
                {
                    btnVerwijderOpdracht.Enabled = false;
                }
                else
                {
                    btnVerwijderOpdracht.Enabled = true;
                }
                opdrachtDetailBindingSource.Filter = "opdrachtID = " + currentOpdrachtID;
            }
        }

        private void btnMaakNieuweOpdracht_Click(object sender, EventArgs e)
        {
            Form form = new MaakNieuweOpdracht(this);
            form.Show();
        }

        private void btnStartOpdracht_Click(object sender, EventArgs e)
        {
            if (currentOpdrachtID > 0)
            {
                if (Convert.ToBoolean(opdrachtTableAdapter.isOpdrachtGemaakt(currentOpdrachtID)))
                {
                    MessageBox.Show("Alle leerlingen hebben deze opdracht reeds voltooid.", "Oeps!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    MaakOpdracht form = new MaakOpdracht();
                    form.Vader = this;
                    form.CurrentOpdrachtID = currentOpdrachtID;
                    form.Show();
                }
            }
            else
            {
                MessageBox.Show("U moet eerst een opdracht selecteren", "Oeps!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }

        private void btnToonResultatenOpdracht_Click(object sender, EventArgs e)
        {
            ToonResultatenOpdracht form = new ToonResultatenOpdracht();
            form.CurrentOpdrachtID = currentOpdrachtID;
            form.Show();
        }

        private void btnVerwijderOpdracht_Click(object sender, EventArgs e)
        {
            DialogResult verwijderen = MessageBox.Show("Bent u zeker dat u de opdracht wilt verwijderen?", "Verwijderen", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (verwijderen.ToString().Equals("Yes"))
            {
                this.opdrachtTableAdapter.deleteOpdrachtByID(currentOpdrachtID);
                UpdateOpdrachtenTabel();
            }
        }

        public void UpdateOpdrachtenTabel()
        {
            this.opdrachtTableAdapter.Fill(this.breukADODataSet1.Opdracht);
        }

        public void UpdateOpdrachtDetailTabel()
        {
            this.opdrachtDetailTableAdapter.Fill(this.breukADODataSet1.OpdrachtDetail);
        }

        private void btnVoegOpgaveToe_Click(object sender, EventArgs e)
        {
            Form form = new maakNieuweOpgaveBijOpdracht(currentOpdrachtID, this);
            form.Show();
        }

        public void RefreshDatagrid()
        {
            this.opdrachtTableAdapter.Fill(this.breukADODataSet1.Opdracht);
            dgvOpdrachten.Refresh();
            dgvOpdrachten.Parent.Refresh();
        }

  

       
    }
}
